"""
宿舍电费公平分摊
这个月的宿舍电费花了500元，宿舍有10个人，大家要凑够500元来缴纳这个电费。
为了公平起见，按照每个人的用电器功率和每天用电时间计算比率。
设计一个程序，让大家输入自己的用电器功率（有1到多个电器）以及对应的平均每天使用时间，结束一个人输入后打印该同学的用电总功率，
最后按比率计算每个人应出多少钱。

提示：
1. 你可以使用一个循环来收集每个室友的用电信息。每次循环中，再使用一个子循环来收集该室友的所有用电器的功率和使用时间，当捕获到非用电信息时（即非数字）结束循环。
2. 用电总功耗可以通过功率乘以使用时间得到。所有室友的用电总功耗之和就是宿舍的总功耗。
3. 每个室友应缴纳的电费 = (该室友的总功耗 / 宿舍的总功耗) * 100元。
"""
def dianfei():
    sum_w = 0 #宿舍的总功耗
    list_w = [] # 个人的用电总功耗列表
    names=[] #成员名字列表
    number=0 #第几个电器
    for i in range(renshu):
        print('----------------------------------------')
        name=input('请输入名字：')
        names.append(name)
        print(f"{names[i]} ,请输入你的用电信息")
        w = 0 #个人的用电总功耗
        while True:
            number+=1
            try:
                power = float(input(f"电器{number}功率w（输入任意非数字就结束）："))
                #float改eval的话，可以直接计算字符串，如"1/6",但使用eval有风险
                time = float(input(f"电器{number}每天使用的时间h（输入任意非数字就结束）："))
                w += (power*time)
            except ValueError:
                break
        print(f"{names[i]} 的用电总功耗为：{w} Wh")
        list_w.append(w)
        sum_w += w
    return sum_w,list_w,names

def main():
    y=[]
    sum_w, list_w,names=dianfei()
    for i in list_w:
        x = ( i / sum_w) * sum_money
        y.append(x)
    print("----------每个人应缴纳的电费：----------")
    for i in range(renshu):
        print(f"{names[i]} 应缴纳：{y[i]:.2f} 元")


if __name__ == "__main__":
    renshu=10 #宿舍人数
    sum_money=500 #电费
    main()